#ifndef OBJETO_H
#define OBJETO_H
#include <vector>
#include "../Auxiliares/Figura.h"
#include "../../common/Constantes.h"
class Escenario;
class ObjetoEstatico;
class ObjetoDinamico;

class Objeto {
protected:
	short ID;
	short vida;
	short masa;
	Figura *figura;
	Escenario *escenario;
public:
	Objeto(short vida, Figura* figura);
	virtual ~Objeto(void);

	void setEscenario(Escenario *escenario);
	Escenario *getEscenario();

	short getX();
	short getY();

	Figura *getFigura();

	void setId(short id);
	short getId();
	short getVida();
	
	virtual void vivir() = 0;
	
	// retorna true si colisiona
	bool detectarColisionCon(Objeto *objeto);
	// le avisa al objeto colisionado que fue por objeto
	virtual bool colisionaCon(Objeto *objeto) { return false; }
	virtual bool colisionaCon(ObjetoEstatico *objeto) { return false; }
	virtual bool colisionaCon(ObjetoDinamico *objeto) { return false; }

	virtual bool daniar(short danio);
	
	virtual short getPuntos();
};

#endif
